"""
集群
基本介绍
    多个节点共同保存数据
作用
    扩展存储空间
    提高吞吐量, 提高写的性能
和单机的不同点
    不再区分数据库, 只有0号库, 单机默认0-15
    不支持事务/管道/多值操作
特点
    要求至少 三主三从
    要求必须开启 AOF持久化
    自动选择集群节点进行存储
    默认集成哨兵, 自动故障转移

注意点:
    redis集群不能支持事务和WATCH,
    并发控制可以通过自己设计悲观锁(setnx)来实现
"""
# python操作Redis集群
# 安装依赖包 pip install redis-py-cluster
from rediscluster import RedisCluster

master_nodes = [  # 设置主数据库的ip和端口
    {'host': '192.168.19.137', 'port': 7000},
    {'host': '192.168.19.137', 'port': 7001},
    {'host': '192.168.19.137', 'port': 7002},
]

# 创建集群客户端
cluster_client = RedisCluster(startup_nodes=master_nodes, decode_responses=True)

# 访问redis
cluster_client.set('name', 'lisi')
print(cluster_client.get('name'))

# 集群不能使用 管道/事务/乐观锁/多值操作
# 集群仍然可以使用悲观锁
